package com.cuit.zuke.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.cuit.zuke.common.util.PageUtil;
import com.cuit.zuke.system.entity.SysRoleEntity;

import java.util.List;
import java.util.Map;

/**
 * @program: zuke
 * @description: 角色
 * @author: KamTang
 * @create: 2022-04-26 14:11
 **/
public interface SysRoleService extends IService<SysRoleEntity> {

    /**
     * 根据用户ID，获取角色ID列表
     * @param userId 管理员id
     * @return List
     */
    List<Long> queryRoleIdList(Long userId);

    /**
     * 分页查询
     * @param params 传入参数
     * @return PageUtil
     */
    PageUtil queryPage(Map<String, Object> params);

    /**
     * 添加角色
     * @param role 角色
     */
    void saveRole(SysRoleEntity role);

    /**
     * 更新
     * @param role 角色实体类
     */
    void update(SysRoleEntity role);

    /**
     * 删除
     * @param roleIds 角色ID列表
     */
    void deleteBatch(Long[] roleIds);

    /**
     * 根据角色id获取角色具体信息
     * @param id
     * @return
     */
    SysRoleEntity getRoleInfoById(Long id);

    /**
     * 根据用户id获取该用户具有的角色详情
     * @param userId
     * @return
     */
    List<SysRoleEntity> getRoleInfoByUserId(Long userId);
}
